1. Field
The present disclosed embodiments relate generally to computing devices, and more specifically to control of operating frequencies of processors.
2. Background
Computing devices including devices such as smartphones, tablet computers, gaming devices, and laptop computers are now ubiquitous. These communication devices are now capable of running a variety of applications (also referred to as “apps”) and many of these devices include multiple processors to process tasks that are associated with apps. In many instances, multiple processors are integrated as a collection of processor cores within a single functional subsystem. It is known that the processing load on a mobile device may be apportioned to the multiple cores. As an example, for load balancing purposes, a processing task may be migrated from one core to another core. In many existing devices multiple cores operate at the same frequency; thus a particular task may be migrated from one core to another core without substantially affecting what the user experiences because the task is processed at the same frequency regardless of the core.
Other more sophisticated devices, however, have multiple core processors that may be operated asynchronously at different frequencies. On this type of device, the amount of work that is performed on each processor may be monitored and the frequency of each processor may be controlled accordingly. If a particular core has a heavy load, the frequency of that processing core may be increased. If a processing core has a relatively low load or is idle, the frequency of that core may be decreased (e.g., to reduce power consumption).
Problematically, existing operating systems (e.g., Linux) may migrate a task from a processing core that is operating at a relatively high frequency to a processing core that is operating at a relatively low frequency, and as a consequence, the execution of that task may be slowed, which from a user's perspective, may be experienced as “stuttering” or poor application performance.